{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
    "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5"
   },
   "outputs": [],
   "source": [
    "# This Python 3 environment comes with many helpful analytics libraries installed\n",
    "# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n",
    "# For example, here's several helpful packages to load in \n",
    "\n",
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
    "\n",
    "# Input data files are available in the \"../input/\" directory.\n",
    "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n",
    "\n",
    "import os\n",
    "for dirname, _, filenames in os.walk('/kaggle/input'):\n",
    "    for filename in filenames:\n",
    "        print(os.path.join(dirname, filename))\n",
    "\n",
    "# Any results you write to the current directory are saved as output."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0",
    "_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.1.0\n",
      "sys.version_info(major=3, minor=6, micro=6, releaselevel='final', serial=0)\n",
      "matplotlib 3.0.3\n",
      "numpy 1.18.1\n",
      "pandas 0.25.3\n",
      "sklearn 0.21.3\n",
      "tensorflow 2.1.0\n",
      "tensorflow_core.python.keras.api._v2.keras 2.2.4-tf\n"
     ]
    }
   ],
   "source": [
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import sklearn\n",
    "import pandas as pd\n",
    "import os\n",
    "import sys\n",
    "import time\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "\n",
    "print(tf.__version__)\n",
    "print(sys.version_info)\n",
    "for module in mpl,np,pd,sklearn,tf,keras:\n",
    "    print(module.__name__,module.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "True\n",
      "True\n",
      "['n4', 'n3', 'n9', 'n6', 'n5', 'n1', 'n7', 'n2', 'n0', 'n8']\n",
      "['n4', 'n3', 'n9', 'n6', 'n5', 'n1', 'n7', 'n2', 'n0', 'n8']\n"
     ]
    }
   ],
   "source": [
    "# 判断文件存在\n",
    "train_dir = '/kaggle/input/10-monkey-species/training/training'\n",
    "valid_dir = '/kaggle/input/10-monkey-species/validation/validation'\n",
    "label_file = '/kaggle/input/10-monkey-species/monkey_labels.txt'\n",
    "print(os.path.exists(train_dir))\n",
    "print(os.path.exists(valid_dir))\n",
    "print(os.path.exists(label_file))\n",
    "\n",
    "print(os.listdir(train_dir))\n",
    "print(os.listdir(valid_dir))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   Label     Latin Name              Common Name                     \\\n",
      "0  n0         alouatta_palliata\\t    mantled_howler                   \n",
      "1  n1        erythrocebus_patas\\t    patas_monkey                     \n",
      "2  n2        cacajao_calvus\\t        bald_uakari                      \n",
      "3  n3        macaca_fuscata\\t        japanese_macaque                 \n",
      "4  n4       cebuella_pygmea\\t        pygmy_marmoset                   \n",
      "5  n5       cebus_capucinus\\t        white_headed_capuchin            \n",
      "6  n6       mico_argentatus\\t        silvery_marmoset                 \n",
      "7  n7      saimiri_sciureus\\t        common_squirrel_monkey           \n",
      "8  n8       aotus_nigriceps\\t        black_headed_night_monkey        \n",
      "9  n9       trachypithecus_johnii    nilgiri_langur                   \n",
      "\n",
      "    Train Images    Validation Images  \n",
      "0             131                  26  \n",
      "1             139                  28  \n",
      "2             137                  27  \n",
      "3             152                  30  \n",
      "4             131                  26  \n",
      "5             141                  28  \n",
      "6             132                  26  \n",
      "7             142                  28  \n",
      "8             133                  27  \n",
      "9             132                  26  \n"
     ]
    }
   ],
   "source": [
    "# 读取labels\n",
    "labels = pd.read_csv(label_file, header=0)\n",
    "print(labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 1098 images belonging to 10 classes.\n",
      "Found 272 images belonging to 10 classes.\n",
      "1098 272\n"
     ]
    }
   ],
   "source": [
    "# 将图片转化成同一尺寸\n",
    "height = 128\n",
    "width = 128\n",
    "channels = 3\n",
    "batch_size = 64\n",
    "num_classes = 10\n",
    "\n",
    "# 读取图片并增强\n",
    "train_datagen = keras.preprocessing.image.ImageDataGenerator(\n",
    "    rescale= 1./255, # 缩放到0-1之间\n",
    "    rotation_range= 40, # 旋转范围\n",
    "    width_shift_range= 0.2, # 水平位移\n",
    "    height_shift_range= 0.2, # 竖直平移\n",
    "    shear_range= 0.2, # 剪切范围\n",
    "    zoom_range= 0.2, # 缩放范围\n",
    "    horizontal_flip= True, # 随机水平翻转\n",
    "    fill_mode= 'nearest', # 对空白位置的填充规则\n",
    ")\n",
    "train_generator = train_datagen.flow_from_directory(\n",
    "    train_dir, target_size = (height, width), batch_size = batch_size, seed = 7, shuffle = True, class_mode = 'categorical')\n",
    "\n",
    "valid_datagen = keras.preprocessing.image.ImageDataGenerator(\n",
    "    rescale= 1./255, # 缩放到0-1之间\n",
    ")\n",
    "valid_generator = valid_datagen.flow_from_directory(\n",
    "    valid_dir, target_size = (height, width), batch_size = batch_size, seed = 7, shuffle = False, class_mode = 'categorical')\n",
    "\n",
    "train_num = train_generator.samples\n",
    "valid_num = valid_generator.samples\n",
    "print(train_num, valid_num)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(64, 128, 128, 3) (64, 10)\n",
      "[[0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]]\n",
      "(64, 128, 128, 3) (64, 10)\n",
      "[[0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]]\n"
     ]
    }
   ],
   "source": [
    "for i in range(2):\n",
    "    x, y = train_generator.next()\n",
    "    print(x.shape, y.shape)\n",
    "    print(y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型构建"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "conv2d (Conv2D)              (None, 128, 128, 32)      896       \n",
      "_________________________________________________________________\n",
      "conv2d_1 (Conv2D)            (None, 128, 128, 32)      9248      \n",
      "_________________________________________________________________\n",
      "max_pooling2d (MaxPooling2D) (None, 64, 64, 32)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_2 (Conv2D)            (None, 64, 64, 64)        18496     \n",
      "_________________________________________________________________\n",
      "conv2d_3 (Conv2D)            (None, 64, 64, 64)        36928     \n",
      "_________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2 (None, 32, 32, 64)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_4 (Conv2D)            (None, 32, 32, 128)       73856     \n",
      "_________________________________________________________________\n",
      "conv2d_5 (Conv2D)            (None, 32, 32, 128)       147584    \n",
      "_________________________________________________________________\n",
      "max_pooling2d_2 (MaxPooling2 (None, 16, 16, 128)       0         \n",
      "_________________________________________________________________\n",
      "flatten (Flatten)            (None, 32768)             0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 128)               4194432   \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 10)                1290      \n",
      "=================================================================\n",
      "Total params: 4,482,730\n",
      "Trainable params: 4,482,730\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model = keras.models.Sequential([\n",
    "    keras.layers.Conv2D(filters=32, kernel_size=3, padding='same', activation='relu', input_shape=[width, height, channels]),\n",
    "    keras.layers.Conv2D(filters=32, kernel_size=3, padding='same', activation='relu'),\n",
    "    keras.layers.MaxPool2D(pool_size=2),\n",
    "    \n",
    "    keras.layers.Conv2D(filters=64, kernel_size=3, padding='same', activation='relu'),\n",
    "    keras.layers.Conv2D(filters=64, kernel_size=3, padding='same', activation='relu'),\n",
    "    keras.layers.MaxPool2D(pool_size=2),\n",
    "    \n",
    "    keras.layers.Conv2D(filters=128, kernel_size=3, padding='same', activation='relu'),\n",
    "    keras.layers.Conv2D(filters=128, kernel_size=3, padding='same', activation='relu'),\n",
    "    keras.layers.MaxPool2D(pool_size=2),\n",
    "    \n",
    "    keras.layers.Flatten(),\n",
    "    keras.layers.Dense(128, activation='relu'),\n",
    "    keras.layers.Dense(num_classes, activation='softmax'),\n",
    "])\n",
    "\n",
    "model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train for 17 steps, validate for 4 steps\n",
      "Epoch 1/100\n",
      "17/17 [==============================] - 43s 3s/step - loss: 2.3125 - accuracy: 0.0919 - val_loss: 2.3020 - val_accuracy: 0.1367\n",
      "Epoch 2/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 2.3020 - accuracy: 0.1112 - val_loss: 2.2980 - val_accuracy: 0.1172\n",
      "Epoch 3/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 2.2865 - accuracy: 0.1315 - val_loss: 2.2103 - val_accuracy: 0.1406\n",
      "Epoch 4/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 2.2137 - accuracy: 0.1896 - val_loss: 2.0473 - val_accuracy: 0.2539\n",
      "Epoch 5/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 2.0856 - accuracy: 0.2456 - val_loss: 1.9353 - val_accuracy: 0.3047\n",
      "Epoch 6/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 2.1400 - accuracy: 0.2060 - val_loss: 1.9866 - val_accuracy: 0.2852\n",
      "Epoch 7/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.9875 - accuracy: 0.2650 - val_loss: 1.9133 - val_accuracy: 0.3594\n",
      "Epoch 8/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.9318 - accuracy: 0.2892 - val_loss: 1.8480 - val_accuracy: 0.3672\n",
      "Epoch 9/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 1.8921 - accuracy: 0.3075 - val_loss: 1.7920 - val_accuracy: 0.3594\n",
      "Epoch 10/100\n",
      "17/17 [==============================] - 38s 2s/step - loss: 1.8125 - accuracy: 0.3346 - val_loss: 1.7036 - val_accuracy: 0.4336\n",
      "Epoch 11/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.7504 - accuracy: 0.3607 - val_loss: 1.6004 - val_accuracy: 0.4531\n",
      "Epoch 12/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 1.7145 - accuracy: 0.3810 - val_loss: 1.5702 - val_accuracy: 0.4844\n",
      "Epoch 13/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 1.6435 - accuracy: 0.4081 - val_loss: 1.5008 - val_accuracy: 0.5156\n",
      "Epoch 14/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.6062 - accuracy: 0.4362 - val_loss: 1.4833 - val_accuracy: 0.4961\n",
      "Epoch 15/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.5264 - accuracy: 0.4487 - val_loss: 1.4317 - val_accuracy: 0.5000\n",
      "Epoch 16/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.4727 - accuracy: 0.4429 - val_loss: 1.4684 - val_accuracy: 0.4414\n",
      "Epoch 17/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.4092 - accuracy: 0.4903 - val_loss: 1.3737 - val_accuracy: 0.5078\n",
      "Epoch 18/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.3832 - accuracy: 0.4884 - val_loss: 1.3154 - val_accuracy: 0.5547\n",
      "Epoch 19/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.3388 - accuracy: 0.5019 - val_loss: 1.2657 - val_accuracy: 0.5391\n",
      "Epoch 20/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.3436 - accuracy: 0.4981 - val_loss: 1.3887 - val_accuracy: 0.5391\n",
      "Epoch 21/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 1.2363 - accuracy: 0.5426 - val_loss: 1.2290 - val_accuracy: 0.5664\n",
      "Epoch 22/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.2750 - accuracy: 0.5319 - val_loss: 1.2647 - val_accuracy: 0.5391\n",
      "Epoch 23/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.2655 - accuracy: 0.5213 - val_loss: 1.2117 - val_accuracy: 0.5703\n",
      "Epoch 24/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.2230 - accuracy: 0.5609 - val_loss: 1.2484 - val_accuracy: 0.5625\n",
      "Epoch 25/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.2829 - accuracy: 0.5455 - val_loss: 1.3225 - val_accuracy: 0.5000\n",
      "Epoch 26/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.2319 - accuracy: 0.5455 - val_loss: 1.0816 - val_accuracy: 0.5977\n",
      "Epoch 27/100\n",
      "17/17 [==============================] - 35s 2s/step - loss: 1.1443 - accuracy: 0.5822 - val_loss: 1.0542 - val_accuracy: 0.6367\n",
      "Epoch 28/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.0885 - accuracy: 0.5928 - val_loss: 1.0622 - val_accuracy: 0.6367\n",
      "Epoch 29/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.0422 - accuracy: 0.6083 - val_loss: 1.0447 - val_accuracy: 0.6172\n",
      "Epoch 30/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 1.0175 - accuracy: 0.6103 - val_loss: 1.0544 - val_accuracy: 0.6641\n",
      "Epoch 31/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 1.0765 - accuracy: 0.5986 - val_loss: 1.0173 - val_accuracy: 0.6680\n",
      "Epoch 32/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 1.0156 - accuracy: 0.6344 - val_loss: 1.0459 - val_accuracy: 0.6250\n",
      "Epoch 33/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.9718 - accuracy: 0.6315 - val_loss: 1.0629 - val_accuracy: 0.6328\n",
      "Epoch 34/100\n",
      "17/17 [==============================] - 38s 2s/step - loss: 0.9629 - accuracy: 0.6460 - val_loss: 1.1196 - val_accuracy: 0.6094\n",
      "Epoch 35/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.8872 - accuracy: 0.6838 - val_loss: 0.9677 - val_accuracy: 0.6641\n",
      "Epoch 36/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.9384 - accuracy: 0.6567 - val_loss: 1.0461 - val_accuracy: 0.6445\n",
      "Epoch 37/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.9192 - accuracy: 0.6451 - val_loss: 1.0239 - val_accuracy: 0.6641\n",
      "Epoch 38/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.9579 - accuracy: 0.6412 - val_loss: 1.0535 - val_accuracy: 0.6367\n",
      "Epoch 39/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.9002 - accuracy: 0.6470 - val_loss: 1.0399 - val_accuracy: 0.6797\n",
      "Epoch 40/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.8498 - accuracy: 0.6867 - val_loss: 0.8515 - val_accuracy: 0.7227\n",
      "Epoch 41/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.8643 - accuracy: 0.6915 - val_loss: 0.9177 - val_accuracy: 0.6875\n",
      "Epoch 42/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.8338 - accuracy: 0.7089 - val_loss: 1.1059 - val_accuracy: 0.6289\n",
      "Epoch 43/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.8136 - accuracy: 0.6915 - val_loss: 0.9666 - val_accuracy: 0.6914\n",
      "Epoch 44/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.7623 - accuracy: 0.7118 - val_loss: 0.8891 - val_accuracy: 0.6992\n",
      "Epoch 45/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.8632 - accuracy: 0.6596 - val_loss: 1.0754 - val_accuracy: 0.6211\n",
      "Epoch 46/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.8255 - accuracy: 0.6944 - val_loss: 0.8491 - val_accuracy: 0.7188\n",
      "Epoch 47/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.7276 - accuracy: 0.7456 - val_loss: 0.9852 - val_accuracy: 0.7148\n",
      "Epoch 48/100\n",
      "17/17 [==============================] - 35s 2s/step - loss: 0.6836 - accuracy: 0.7408 - val_loss: 0.8715 - val_accuracy: 0.7422\n",
      "Epoch 49/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.6846 - accuracy: 0.7437 - val_loss: 1.0242 - val_accuracy: 0.6602\n",
      "Epoch 50/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.6224 - accuracy: 0.7756 - val_loss: 1.0089 - val_accuracy: 0.7266\n",
      "Epoch 51/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.6924 - accuracy: 0.7408 - val_loss: 1.2079 - val_accuracy: 0.6406\n",
      "Epoch 52/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.6648 - accuracy: 0.7495 - val_loss: 1.1297 - val_accuracy: 0.6406\n",
      "Epoch 53/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.6322 - accuracy: 0.7718 - val_loss: 0.9381 - val_accuracy: 0.7227\n",
      "Epoch 54/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.6350 - accuracy: 0.7698 - val_loss: 0.9888 - val_accuracy: 0.6641\n",
      "Epoch 55/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.5988 - accuracy: 0.7921 - val_loss: 1.1147 - val_accuracy: 0.6680\n",
      "Epoch 56/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.6031 - accuracy: 0.7747 - val_loss: 0.9767 - val_accuracy: 0.7070\n",
      "Epoch 57/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.6074 - accuracy: 0.7582 - val_loss: 0.9488 - val_accuracy: 0.7070\n",
      "Epoch 58/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.5889 - accuracy: 0.7872 - val_loss: 1.0902 - val_accuracy: 0.6875\n",
      "Epoch 59/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.5410 - accuracy: 0.7930 - val_loss: 0.9576 - val_accuracy: 0.7070\n",
      "Epoch 60/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.5807 - accuracy: 0.7814 - val_loss: 0.9202 - val_accuracy: 0.7305\n",
      "Epoch 61/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.5823 - accuracy: 0.7901 - val_loss: 0.9926 - val_accuracy: 0.6797\n",
      "Epoch 62/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.6136 - accuracy: 0.7858 - val_loss: 0.9553 - val_accuracy: 0.7070\n",
      "Epoch 63/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.5970 - accuracy: 0.7805 - val_loss: 1.0282 - val_accuracy: 0.6836\n",
      "Epoch 64/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.6101 - accuracy: 0.7756 - val_loss: 0.8388 - val_accuracy: 0.7344\n",
      "Epoch 65/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.4965 - accuracy: 0.8298 - val_loss: 0.9811 - val_accuracy: 0.6953\n",
      "Epoch 66/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.4639 - accuracy: 0.8269 - val_loss: 0.9230 - val_accuracy: 0.7500\n",
      "Epoch 67/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.4605 - accuracy: 0.8375 - val_loss: 0.9514 - val_accuracy: 0.7500\n",
      "Epoch 68/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.5107 - accuracy: 0.8085 - val_loss: 1.0044 - val_accuracy: 0.6914\n",
      "Epoch 69/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.5036 - accuracy: 0.8182 - val_loss: 1.2012 - val_accuracy: 0.6914\n",
      "Epoch 70/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.5031 - accuracy: 0.8143 - val_loss: 0.8699 - val_accuracy: 0.7578\n",
      "Epoch 71/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.4785 - accuracy: 0.8189 - val_loss: 1.2484 - val_accuracy: 0.6719\n",
      "Epoch 72/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.4491 - accuracy: 0.8356 - val_loss: 1.1186 - val_accuracy: 0.7188\n",
      "Epoch 73/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.4138 - accuracy: 0.8530 - val_loss: 1.0373 - val_accuracy: 0.7461\n",
      "Epoch 74/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.5273 - accuracy: 0.8095 - val_loss: 0.8624 - val_accuracy: 0.7617\n",
      "Epoch 75/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.4774 - accuracy: 0.8298 - val_loss: 1.1904 - val_accuracy: 0.6875\n",
      "Epoch 76/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.4402 - accuracy: 0.8482 - val_loss: 0.8932 - val_accuracy: 0.8008\n",
      "Epoch 77/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.4441 - accuracy: 0.8569 - val_loss: 0.9207 - val_accuracy: 0.7383\n",
      "Epoch 78/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.4119 - accuracy: 0.8491 - val_loss: 0.8079 - val_accuracy: 0.7500\n",
      "Epoch 79/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.4139 - accuracy: 0.8762 - val_loss: 0.9597 - val_accuracy: 0.7305\n",
      "Epoch 80/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.3569 - accuracy: 0.8762 - val_loss: 1.1424 - val_accuracy: 0.7344\n",
      "Epoch 81/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.4305 - accuracy: 0.8501 - val_loss: 0.7412 - val_accuracy: 0.7891\n",
      "Epoch 82/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.4530 - accuracy: 0.8327 - val_loss: 0.9651 - val_accuracy: 0.7305\n",
      "Epoch 83/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.3637 - accuracy: 0.8636 - val_loss: 0.8161 - val_accuracy: 0.7930\n",
      "Epoch 84/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.3566 - accuracy: 0.8801 - val_loss: 1.0232 - val_accuracy: 0.7812\n",
      "Epoch 85/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.3907 - accuracy: 0.8569 - val_loss: 1.0323 - val_accuracy: 0.7344\n",
      "Epoch 86/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.3671 - accuracy: 0.8646 - val_loss: 0.8239 - val_accuracy: 0.7812\n",
      "Epoch 87/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.3542 - accuracy: 0.8824 - val_loss: 1.0438 - val_accuracy: 0.7227\n",
      "Epoch 88/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.3800 - accuracy: 0.8627 - val_loss: 0.9680 - val_accuracy: 0.7695\n",
      "Epoch 89/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.3247 - accuracy: 0.8868 - val_loss: 0.9154 - val_accuracy: 0.8008\n",
      "Epoch 90/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.3180 - accuracy: 0.8772 - val_loss: 1.0179 - val_accuracy: 0.7617\n",
      "Epoch 91/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.3163 - accuracy: 0.8849 - val_loss: 0.9054 - val_accuracy: 0.8008\n",
      "Epoch 92/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.2687 - accuracy: 0.9052 - val_loss: 1.1844 - val_accuracy: 0.7773\n",
      "Epoch 93/100\n",
      "17/17 [==============================] - 38s 2s/step - loss: 0.2782 - accuracy: 0.9053 - val_loss: 1.1379 - val_accuracy: 0.7500\n",
      "Epoch 94/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.2665 - accuracy: 0.8975 - val_loss: 1.7570 - val_accuracy: 0.7227\n",
      "Epoch 95/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.2864 - accuracy: 0.8897 - val_loss: 0.9361 - val_accuracy: 0.7695\n",
      "Epoch 96/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.3189 - accuracy: 0.8839 - val_loss: 0.9641 - val_accuracy: 0.7734\n",
      "Epoch 97/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.3053 - accuracy: 0.8975 - val_loss: 1.1539 - val_accuracy: 0.7070\n",
      "Epoch 98/100\n",
      "17/17 [==============================] - 37s 2s/step - loss: 0.3369 - accuracy: 0.8704 - val_loss: 0.8324 - val_accuracy: 0.7969\n",
      "Epoch 99/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.2823 - accuracy: 0.9062 - val_loss: 0.9258 - val_accuracy: 0.7812\n",
      "Epoch 100/100\n",
      "17/17 [==============================] - 36s 2s/step - loss: 0.2355 - accuracy: 0.9130 - val_loss: 0.9086 - val_accuracy: 0.7773\n"
     ]
    }
   ],
   "source": [
    "epochs = 100\n",
    "history = model.fit_generator(train_generator,\n",
    "                              steps_per_epoch= train_num // batch_size,\n",
    "                              epochs=epochs,\n",
    "                              validation_data=valid_generator,\n",
    "                              validation_steps= valid_num // batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['loss', 'accuracy', 'val_loss', 'val_accuracy'])\n"
     ]
    }
   ],
   "source": [
    "print(history.history.keys())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_learning_curves(history, label, epochs, min_value, max_value):\n",
    "    data = {}\n",
    "    data[label] = history.history[label]\n",
    "    data['val_'+label] = history.history['val_'+label]\n",
    "    pd.DataFrame(data).plot(figsize=(8, 5))\n",
    "    plt.grid(True)\n",
    "    plt.axis([0, epochs, min_value, max_value])\n",
    "    plt.show()\n",
    "    \n",
    "plot_learning_curves(history, 'accuracy', epochs, 0, 1)\n",
    "plot_learning_curves(history, 'loss', epochs, 1, 2.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 迁移学习--RestNet50 finetune"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 1098 images belonging to 10 classes.\n",
      "Found 272 images belonging to 10 classes.\n",
      "1098 272\n"
     ]
    }
   ],
   "source": [
    "# 将图片转化成同一尺寸\n",
    "height = 224\n",
    "width = 224\n",
    "channels = 3\n",
    "batch_size = 24\n",
    "num_classes = 10\n",
    "\n",
    "# 读取图片并增强\n",
    "train_datagen = keras.preprocessing.image.ImageDataGenerator(\n",
    "    preprocessing_function=keras.applications.resnet50.preprocess_input,\n",
    "    rotation_range= 40, # 旋转范围\n",
    "    width_shift_range= 0.2, # 水平位移\n",
    "    height_shift_range= 0.2, # 竖直平移\n",
    "    shear_range= 0.2, # 剪切范围\n",
    "    zoom_range= 0.2, # 缩放范围\n",
    "    horizontal_flip= True, # 随机水平翻转\n",
    "    fill_mode= 'nearest', # 对空白位置的填充规则\n",
    ")\n",
    "train_generator = train_datagen.flow_from_directory(\n",
    "    train_dir, target_size = (height, width), batch_size = batch_size, seed = 7, shuffle = True, class_mode = 'categorical')\n",
    "\n",
    "valid_datagen = keras.preprocessing.image.ImageDataGenerator(\n",
    "    preprocessing_function=keras.applications.resnet50.preprocess_input)\n",
    "valid_generator = valid_datagen.flow_from_directory(\n",
    "    valid_dir, target_size = (height, width), batch_size = batch_size, seed = 7, shuffle = False, class_mode = 'categorical')\n",
    "\n",
    "train_num = train_generator.samples\n",
    "valid_num = valid_generator.samples\n",
    "print(train_num, valid_num)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(24, 224, 224, 3) (24, 10)\n",
      "[[0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
      " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
      " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]]\n"
     ]
    }
   ],
   "source": [
    "for i in range(1):\n",
    "    x, y = train_generator.next()\n",
    "    print(x.shape, y.shape)\n",
    "    print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading data from https://github.com/keras-team/keras-applications/releases/download/resnet/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5\n",
      "94773248/94765736 [==============================] - 1s 0us/step\n",
      "Model: \"sequential_1\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "resnet50 (Model)             (None, 2048)              23587712  \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 10)                20490     \n",
      "=================================================================\n",
      "Total params: 23,608,202\n",
      "Trainable params: 20,490\n",
      "Non-trainable params: 23,587,712\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "resnet50_fine_tune = keras.models.Sequential()\n",
    "resnet50_fine_tune.add(keras.applications.ResNet50(include_top = False, pooling = 'avg', weights = 'imagenet'))\n",
    "resnet50_fine_tune.add(keras.layers.Dense(num_classes, activation='softmax'))\n",
    "resnet50_fine_tune.layers[0].trainable = False\n",
    "\n",
    "resnet50_fine_tune.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n",
    "resnet50_fine_tune.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train for 45 steps, validate for 11 steps\n",
      "Epoch 1/10\n",
      "45/45 [==============================] - 50s 1s/step - loss: 1.5003 - accuracy: 0.5391 - val_loss: 0.7293 - val_accuracy: 0.7500\n",
      "Epoch 2/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.6995 - accuracy: 0.8585 - val_loss: 0.4224 - val_accuracy: 0.8523\n",
      "Epoch 3/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.4673 - accuracy: 0.9134 - val_loss: 0.3553 - val_accuracy: 0.9053\n",
      "Epoch 4/10\n",
      "45/45 [==============================] - 45s 995ms/step - loss: 0.3525 - accuracy: 0.9358 - val_loss: 0.3139 - val_accuracy: 0.9091\n",
      "Epoch 5/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.3100 - accuracy: 0.9423 - val_loss: 0.2693 - val_accuracy: 0.9356\n",
      "Epoch 6/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.2460 - accuracy: 0.9572 - val_loss: 0.2603 - val_accuracy: 0.9129\n",
      "Epoch 7/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.2226 - accuracy: 0.9646 - val_loss: 0.2625 - val_accuracy: 0.9356\n",
      "Epoch 8/10\n",
      "45/45 [==============================] - 46s 1s/step - loss: 0.2072 - accuracy: 0.9683 - val_loss: 0.2173 - val_accuracy: 0.9394\n",
      "Epoch 9/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.2027 - accuracy: 0.9572 - val_loss: 0.2422 - val_accuracy: 0.9356\n",
      "Epoch 10/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.1701 - accuracy: 0.9665 - val_loss: 0.2285 - val_accuracy: 0.9318\n"
     ]
    }
   ],
   "source": [
    "epochs = 10\n",
    "history_resnet = resnet50_fine_tune.fit_generator(train_generator,\n",
    "                                                  steps_per_epoch= train_num // batch_size,\n",
    "                                                  epochs=epochs,\n",
    "                                                  validation_data=valid_generator,\n",
    "                                                  validation_steps= valid_num // batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curves(history_resnet, 'accuracy', epochs, 0, 1)\n",
    "plot_learning_curves(history_resnet, 'loss', epochs, 0, 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 另一种resnet50 finetune，对resnet最后几层进行训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"resnet50\"\n",
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_2 (InputLayer)            [(None, None, None,  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "conv1_pad (ZeroPadding2D)       (None, None, None, 3 0           input_2[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "conv1_conv (Conv2D)             (None, None, None, 6 9472        conv1_pad[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv1_bn (BatchNormalization)   (None, None, None, 6 256         conv1_conv[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "conv1_relu (Activation)         (None, None, None, 6 0           conv1_bn[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "pool1_pad (ZeroPadding2D)       (None, None, None, 6 0           conv1_relu[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "pool1_pool (MaxPooling2D)       (None, None, None, 6 0           pool1_pad[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_1_conv (Conv2D)    (None, None, None, 6 4160        pool1_pool[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_1_bn (BatchNormali (None, None, None, 6 256         conv2_block1_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_1_relu (Activation (None, None, None, 6 0           conv2_block1_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_2_conv (Conv2D)    (None, None, None, 6 36928       conv2_block1_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_2_bn (BatchNormali (None, None, None, 6 256         conv2_block1_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_2_relu (Activation (None, None, None, 6 0           conv2_block1_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_0_conv (Conv2D)    (None, None, None, 2 16640       pool1_pool[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_3_conv (Conv2D)    (None, None, None, 2 16640       conv2_block1_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_0_bn (BatchNormali (None, None, None, 2 1024        conv2_block1_0_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_3_bn (BatchNormali (None, None, None, 2 1024        conv2_block1_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_add (Add)          (None, None, None, 2 0           conv2_block1_0_bn[0][0]          \n",
      "                                                                 conv2_block1_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block1_out (Activation)   (None, None, None, 2 0           conv2_block1_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_1_conv (Conv2D)    (None, None, None, 6 16448       conv2_block1_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_1_bn (BatchNormali (None, None, None, 6 256         conv2_block2_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_1_relu (Activation (None, None, None, 6 0           conv2_block2_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_2_conv (Conv2D)    (None, None, None, 6 36928       conv2_block2_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_2_bn (BatchNormali (None, None, None, 6 256         conv2_block2_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_2_relu (Activation (None, None, None, 6 0           conv2_block2_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_3_conv (Conv2D)    (None, None, None, 2 16640       conv2_block2_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_3_bn (BatchNormali (None, None, None, 2 1024        conv2_block2_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_add (Add)          (None, None, None, 2 0           conv2_block1_out[0][0]           \n",
      "                                                                 conv2_block2_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block2_out (Activation)   (None, None, None, 2 0           conv2_block2_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_1_conv (Conv2D)    (None, None, None, 6 16448       conv2_block2_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_1_bn (BatchNormali (None, None, None, 6 256         conv2_block3_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_1_relu (Activation (None, None, None, 6 0           conv2_block3_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_2_conv (Conv2D)    (None, None, None, 6 36928       conv2_block3_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_2_bn (BatchNormali (None, None, None, 6 256         conv2_block3_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_2_relu (Activation (None, None, None, 6 0           conv2_block3_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_3_conv (Conv2D)    (None, None, None, 2 16640       conv2_block3_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_3_bn (BatchNormali (None, None, None, 2 1024        conv2_block3_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_add (Add)          (None, None, None, 2 0           conv2_block2_out[0][0]           \n",
      "                                                                 conv2_block3_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv2_block3_out (Activation)   (None, None, None, 2 0           conv2_block3_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_1_conv (Conv2D)    (None, None, None, 1 32896       conv2_block3_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_1_bn (BatchNormali (None, None, None, 1 512         conv3_block1_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_1_relu (Activation (None, None, None, 1 0           conv3_block1_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_2_conv (Conv2D)    (None, None, None, 1 147584      conv3_block1_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_2_bn (BatchNormali (None, None, None, 1 512         conv3_block1_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_2_relu (Activation (None, None, None, 1 0           conv3_block1_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_0_conv (Conv2D)    (None, None, None, 5 131584      conv2_block3_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_3_conv (Conv2D)    (None, None, None, 5 66048       conv3_block1_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_0_bn (BatchNormali (None, None, None, 5 2048        conv3_block1_0_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_3_bn (BatchNormali (None, None, None, 5 2048        conv3_block1_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_add (Add)          (None, None, None, 5 0           conv3_block1_0_bn[0][0]          \n",
      "                                                                 conv3_block1_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block1_out (Activation)   (None, None, None, 5 0           conv3_block1_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_1_conv (Conv2D)    (None, None, None, 1 65664       conv3_block1_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_1_bn (BatchNormali (None, None, None, 1 512         conv3_block2_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_1_relu (Activation (None, None, None, 1 0           conv3_block2_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_2_conv (Conv2D)    (None, None, None, 1 147584      conv3_block2_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_2_bn (BatchNormali (None, None, None, 1 512         conv3_block2_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_2_relu (Activation (None, None, None, 1 0           conv3_block2_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_3_conv (Conv2D)    (None, None, None, 5 66048       conv3_block2_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_3_bn (BatchNormali (None, None, None, 5 2048        conv3_block2_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_add (Add)          (None, None, None, 5 0           conv3_block1_out[0][0]           \n",
      "                                                                 conv3_block2_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block2_out (Activation)   (None, None, None, 5 0           conv3_block2_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_1_conv (Conv2D)    (None, None, None, 1 65664       conv3_block2_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_1_bn (BatchNormali (None, None, None, 1 512         conv3_block3_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_1_relu (Activation (None, None, None, 1 0           conv3_block3_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_2_conv (Conv2D)    (None, None, None, 1 147584      conv3_block3_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_2_bn (BatchNormali (None, None, None, 1 512         conv3_block3_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_2_relu (Activation (None, None, None, 1 0           conv3_block3_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_3_conv (Conv2D)    (None, None, None, 5 66048       conv3_block3_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_3_bn (BatchNormali (None, None, None, 5 2048        conv3_block3_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_add (Add)          (None, None, None, 5 0           conv3_block2_out[0][0]           \n",
      "                                                                 conv3_block3_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block3_out (Activation)   (None, None, None, 5 0           conv3_block3_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_1_conv (Conv2D)    (None, None, None, 1 65664       conv3_block3_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_1_bn (BatchNormali (None, None, None, 1 512         conv3_block4_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_1_relu (Activation (None, None, None, 1 0           conv3_block4_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_2_conv (Conv2D)    (None, None, None, 1 147584      conv3_block4_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_2_bn (BatchNormali (None, None, None, 1 512         conv3_block4_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_2_relu (Activation (None, None, None, 1 0           conv3_block4_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_3_conv (Conv2D)    (None, None, None, 5 66048       conv3_block4_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_3_bn (BatchNormali (None, None, None, 5 2048        conv3_block4_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_add (Add)          (None, None, None, 5 0           conv3_block3_out[0][0]           \n",
      "                                                                 conv3_block4_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv3_block4_out (Activation)   (None, None, None, 5 0           conv3_block4_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_1_conv (Conv2D)    (None, None, None, 2 131328      conv3_block4_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_1_bn (BatchNormali (None, None, None, 2 1024        conv4_block1_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_1_relu (Activation (None, None, None, 2 0           conv4_block1_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_2_conv (Conv2D)    (None, None, None, 2 590080      conv4_block1_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_2_bn (BatchNormali (None, None, None, 2 1024        conv4_block1_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_2_relu (Activation (None, None, None, 2 0           conv4_block1_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_0_conv (Conv2D)    (None, None, None, 1 525312      conv3_block4_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_3_conv (Conv2D)    (None, None, None, 1 263168      conv4_block1_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_0_bn (BatchNormali (None, None, None, 1 4096        conv4_block1_0_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_3_bn (BatchNormali (None, None, None, 1 4096        conv4_block1_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_add (Add)          (None, None, None, 1 0           conv4_block1_0_bn[0][0]          \n",
      "                                                                 conv4_block1_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block1_out (Activation)   (None, None, None, 1 0           conv4_block1_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_1_conv (Conv2D)    (None, None, None, 2 262400      conv4_block1_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_1_bn (BatchNormali (None, None, None, 2 1024        conv4_block2_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_1_relu (Activation (None, None, None, 2 0           conv4_block2_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_2_conv (Conv2D)    (None, None, None, 2 590080      conv4_block2_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_2_bn (BatchNormali (None, None, None, 2 1024        conv4_block2_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_2_relu (Activation (None, None, None, 2 0           conv4_block2_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_3_conv (Conv2D)    (None, None, None, 1 263168      conv4_block2_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_3_bn (BatchNormali (None, None, None, 1 4096        conv4_block2_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_add (Add)          (None, None, None, 1 0           conv4_block1_out[0][0]           \n",
      "                                                                 conv4_block2_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block2_out (Activation)   (None, None, None, 1 0           conv4_block2_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_1_conv (Conv2D)    (None, None, None, 2 262400      conv4_block2_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_1_bn (BatchNormali (None, None, None, 2 1024        conv4_block3_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_1_relu (Activation (None, None, None, 2 0           conv4_block3_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_2_conv (Conv2D)    (None, None, None, 2 590080      conv4_block3_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_2_bn (BatchNormali (None, None, None, 2 1024        conv4_block3_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_2_relu (Activation (None, None, None, 2 0           conv4_block3_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_3_conv (Conv2D)    (None, None, None, 1 263168      conv4_block3_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_3_bn (BatchNormali (None, None, None, 1 4096        conv4_block3_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_add (Add)          (None, None, None, 1 0           conv4_block2_out[0][0]           \n",
      "                                                                 conv4_block3_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block3_out (Activation)   (None, None, None, 1 0           conv4_block3_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_1_conv (Conv2D)    (None, None, None, 2 262400      conv4_block3_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_1_bn (BatchNormali (None, None, None, 2 1024        conv4_block4_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_1_relu (Activation (None, None, None, 2 0           conv4_block4_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_2_conv (Conv2D)    (None, None, None, 2 590080      conv4_block4_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_2_bn (BatchNormali (None, None, None, 2 1024        conv4_block4_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_2_relu (Activation (None, None, None, 2 0           conv4_block4_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_3_conv (Conv2D)    (None, None, None, 1 263168      conv4_block4_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_3_bn (BatchNormali (None, None, None, 1 4096        conv4_block4_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_add (Add)          (None, None, None, 1 0           conv4_block3_out[0][0]           \n",
      "                                                                 conv4_block4_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block4_out (Activation)   (None, None, None, 1 0           conv4_block4_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_1_conv (Conv2D)    (None, None, None, 2 262400      conv4_block4_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_1_bn (BatchNormali (None, None, None, 2 1024        conv4_block5_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_1_relu (Activation (None, None, None, 2 0           conv4_block5_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_2_conv (Conv2D)    (None, None, None, 2 590080      conv4_block5_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_2_bn (BatchNormali (None, None, None, 2 1024        conv4_block5_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_2_relu (Activation (None, None, None, 2 0           conv4_block5_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_3_conv (Conv2D)    (None, None, None, 1 263168      conv4_block5_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_3_bn (BatchNormali (None, None, None, 1 4096        conv4_block5_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_add (Add)          (None, None, None, 1 0           conv4_block4_out[0][0]           \n",
      "                                                                 conv4_block5_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block5_out (Activation)   (None, None, None, 1 0           conv4_block5_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_1_conv (Conv2D)    (None, None, None, 2 262400      conv4_block5_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_1_bn (BatchNormali (None, None, None, 2 1024        conv4_block6_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_1_relu (Activation (None, None, None, 2 0           conv4_block6_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_2_conv (Conv2D)    (None, None, None, 2 590080      conv4_block6_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_2_bn (BatchNormali (None, None, None, 2 1024        conv4_block6_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_2_relu (Activation (None, None, None, 2 0           conv4_block6_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_3_conv (Conv2D)    (None, None, None, 1 263168      conv4_block6_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_3_bn (BatchNormali (None, None, None, 1 4096        conv4_block6_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_add (Add)          (None, None, None, 1 0           conv4_block5_out[0][0]           \n",
      "                                                                 conv4_block6_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv4_block6_out (Activation)   (None, None, None, 1 0           conv4_block6_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_1_conv (Conv2D)    (None, None, None, 5 524800      conv4_block6_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_1_bn (BatchNormali (None, None, None, 5 2048        conv5_block1_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_1_relu (Activation (None, None, None, 5 0           conv5_block1_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_2_conv (Conv2D)    (None, None, None, 5 2359808     conv5_block1_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_2_bn (BatchNormali (None, None, None, 5 2048        conv5_block1_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_2_relu (Activation (None, None, None, 5 0           conv5_block1_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_0_conv (Conv2D)    (None, None, None, 2 2099200     conv4_block6_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_3_conv (Conv2D)    (None, None, None, 2 1050624     conv5_block1_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_0_bn (BatchNormali (None, None, None, 2 8192        conv5_block1_0_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_3_bn (BatchNormali (None, None, None, 2 8192        conv5_block1_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_add (Add)          (None, None, None, 2 0           conv5_block1_0_bn[0][0]          \n",
      "                                                                 conv5_block1_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block1_out (Activation)   (None, None, None, 2 0           conv5_block1_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_1_conv (Conv2D)    (None, None, None, 5 1049088     conv5_block1_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_1_bn (BatchNormali (None, None, None, 5 2048        conv5_block2_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_1_relu (Activation (None, None, None, 5 0           conv5_block2_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_2_conv (Conv2D)    (None, None, None, 5 2359808     conv5_block2_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_2_bn (BatchNormali (None, None, None, 5 2048        conv5_block2_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_2_relu (Activation (None, None, None, 5 0           conv5_block2_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_3_conv (Conv2D)    (None, None, None, 2 1050624     conv5_block2_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_3_bn (BatchNormali (None, None, None, 2 8192        conv5_block2_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_add (Add)          (None, None, None, 2 0           conv5_block1_out[0][0]           \n",
      "                                                                 conv5_block2_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block2_out (Activation)   (None, None, None, 2 0           conv5_block2_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_1_conv (Conv2D)    (None, None, None, 5 1049088     conv5_block2_out[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_1_bn (BatchNormali (None, None, None, 5 2048        conv5_block3_1_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_1_relu (Activation (None, None, None, 5 0           conv5_block3_1_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_2_conv (Conv2D)    (None, None, None, 5 2359808     conv5_block3_1_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_2_bn (BatchNormali (None, None, None, 5 2048        conv5_block3_2_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_2_relu (Activation (None, None, None, 5 0           conv5_block3_2_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_3_conv (Conv2D)    (None, None, None, 2 1050624     conv5_block3_2_relu[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_3_bn (BatchNormali (None, None, None, 2 8192        conv5_block3_3_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_add (Add)          (None, None, None, 2 0           conv5_block2_out[0][0]           \n",
      "                                                                 conv5_block3_3_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "conv5_block3_out (Activation)   (None, None, None, 2 0           conv5_block3_add[0][0]           \n",
      "__________________________________________________________________________________________________\n",
      "avg_pool (GlobalAveragePooling2 (None, 2048)         0           conv5_block3_out[0][0]           \n",
      "==================================================================================================\n",
      "Total params: 23,587,712\n",
      "Trainable params: 23,534,592\n",
      "Non-trainable params: 53,120\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "resnet50 = keras.applications.ResNet50(include_top = False, pooling = 'avg', weights = 'imagenet')\n",
    "resnet50.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_2\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "resnet50 (Model)             (None, 2048)              23587712  \n",
      "_________________________________________________________________\n",
      "dense_3 (Dense)              (None, 10)                20490     \n",
      "=================================================================\n",
      "Total params: 23,608,202\n",
      "Trainable params: 1,075,210\n",
      "Non-trainable params: 22,532,992\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "for layer in resnet50.layers[0:-5]:\n",
    "    layer.trainable = False\n",
    "\n",
    "resnet50_new = keras.models.Sequential([\n",
    "    resnet50,\n",
    "    keras.layers.Dense(num_classes, activation='softmax')\n",
    "])\n",
    "\n",
    "resnet50_new.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n",
    "resnet50_new.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train for 45 steps, validate for 11 steps\n",
      "Epoch 1/10\n",
      "45/45 [==============================] - 49s 1s/step - loss: 1.3570 - accuracy: 0.6294 - val_loss: 0.4814 - val_accuracy: 0.8750\n",
      "Epoch 2/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.5015 - accuracy: 0.9134 - val_loss: 0.2469 - val_accuracy: 0.9432\n",
      "Epoch 3/10\n",
      "45/45 [==============================] - 45s 997ms/step - loss: 0.3399 - accuracy: 0.9315 - val_loss: 0.2079 - val_accuracy: 0.9470\n",
      "Epoch 4/10\n",
      "45/45 [==============================] - 46s 1s/step - loss: 0.2644 - accuracy: 0.9497 - val_loss: 0.2188 - val_accuracy: 0.9318\n",
      "Epoch 5/10\n",
      "45/45 [==============================] - 45s 997ms/step - loss: 0.2088 - accuracy: 0.9693 - val_loss: 0.1942 - val_accuracy: 0.9470\n",
      "Epoch 6/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.1936 - accuracy: 0.9655 - val_loss: 0.1651 - val_accuracy: 0.9508\n",
      "Epoch 7/10\n",
      "45/45 [==============================] - 44s 985ms/step - loss: 0.1769 - accuracy: 0.9628 - val_loss: 0.1495 - val_accuracy: 0.9508\n",
      "Epoch 8/10\n",
      "45/45 [==============================] - 45s 997ms/step - loss: 0.1431 - accuracy: 0.9777 - val_loss: 0.1620 - val_accuracy: 0.9508\n",
      "Epoch 9/10\n",
      "45/45 [==============================] - 45s 991ms/step - loss: 0.1391 - accuracy: 0.9823 - val_loss: 0.1390 - val_accuracy: 0.9508\n",
      "Epoch 10/10\n",
      "45/45 [==============================] - 45s 1s/step - loss: 0.1397 - accuracy: 0.9730 - val_loss: 0.1521 - val_accuracy: 0.9545\n"
     ]
    }
   ],
   "source": [
    "epochs = 10\n",
    "history_resnet_new = resnet50_new.fit_generator(train_generator,\n",
    "                                                steps_per_epoch= train_num // batch_size,\n",
    "                                                epochs=epochs,\n",
    "                                                validation_data=valid_generator,\n",
    "                                                validation_steps= valid_num // batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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4Y477mDWrFkUFhayePFiLrnkEqZOncrll18OwO23386BAwc49dRTmTp1KitWrADgvvvuY+7cuZx//vkMHz6809f61re+xbe//W3OPvtsWlpa2pZfd911jBo1iilTpjB16lR+97vftT135ZVXMnLkSCZOnJigHhAREb8w55wnL1xSUuLaH0LeuHEjEyZM8KSevuLGG29k2rRpXHvttV227cmwoK30N+laWVlZ26kKSQz1ceKpjxPPzN52zs3ozjo6qdmHTJ8+nczMTH70ox95XYqIiPQChXQf8vbbb3tdgoiI9CKdkxYREfEphbSIiIjoxRixAAAIqElEQVRPKaRFRER8SiEtIiLiUwppERERn1JI90D03a5ERETiTSHdD+je1CIi/ZN/vyf9x9tg93vx3eawyXDhfZ0+feuttzJ69Gj+6Z/+CYBFixZhZqxcuZIDBw7Q1NTEPffcw/z587t8qdraWubPn9/hek8++SQPPPAAZsaUKVP4zW9+w549e7jhhhvYunUrAI888ggjRoxg7ty5rFu3DoAHHniA2tpaFi1aRGlpKWeddRavv/468+bNY9y4cdxzzz00NjYyePBgnnrqKTIyMqitreWmm25izZo1mBl33XUXVVVVrFu3joceegiAX/7yl2zcuJEHH3ywR90rIiLx5d+Q9sCCBQv4xje+0RbSzzzzDC+99BI333wzOTk57Nu3j1mzZjFv3rwO71IVLRgM8txzzx2z3oYNG7j33nt5/fXXKSgoaLt5xte//nXOPfdcnnvuOVpaWqitre3y/tRVVVW8+uqrQPjmHqtWrcLMePTRR7n//vtZtGhRh/e8Tk1NZcqUKdx///2kpKTw+OOP84tf/KKn3SciInHm35A+zh5vokybNo29e/eya9cuKioqGDRoEMOHD+fmm29m5cqVJCUlsXPnTvbs2cOwYcOOuy3nHN/5zneOWe+VV17h0ksvpaCgADhyr+hXXnml7f7QgUCA3NzcLkO69UYfAOXl5Vx++eV8/PHHNDY2tt37urN7Xp9//vm8+OKLTJgwgaamJiZPntzN3hIRkUTzb0h75NJLL2Xp0qXs3r2bBQsW8NRTT1FRUcHbb79NSkoKY8aMOeYe0R3pbL3O7hXdkeTkZEKhUNv88e5NfdNNN3HLLbcwb948ysrKWLRoEdD5vamvu+46fvCDHzB+/HgWLlwYUz0iItK7dOFYOwsWLGDJkiUsXbqUSy+9lOrqaoYMGUJKSgorVqzgww8/jGk7na03e/ZsnnnmGSorK4Ej94qePXs2jzzyCAAtLS0cPHiQoUOHsnfvXiorK2loaODFF1887uu13pv617/+ddvyzu55PXPmTHbs2MHvfvc7rrjiili7R0REepFCup1JkyZRU1NDUVERw4cP58orr2TNmjXMmDGDp556ivHjx8e0nc7WmzRpEt/97nc599xzmTp1KrfccgsAP/7xj1mxYgWTJ09m+vTprF+/npSUFO68805mzpzJ3Llzj/vaixYt4rLLLuPTn/5026F06Pye1wBf+tKXOPvss9sOgYuIiL/oftL9WFf3k547dy4333wzs2fP7rSN/iZd0314E099nHjq48Q7kftJa096AKqqqmLcuHGkp6cfN6BFRMRbunCsh9577z2uuuqqo5alpaWxevVqjyrqWl5eHu+//77XZYiISBcU0j00efJk3n33Xa/LEBGRfsh3h7u9Okcux9LfQkTEW74K6WAwSGVlpcLBB5xzVFZWEgwGvS5FRGTA8tXh7uLiYsrLy6moqPC6lH6hvr6+RyEbDAYpLi6OY0UiItIdMYW0mc0BfgwEgEedc/e1ez4NeBKYDlQClzvntne3mJSUlLbhLKXnysrKmDZtmtdliIjICerycLeZBYCHgQuBicAVZjaxXbNrgQPOuZOBh4B/jXehIiIiA00s56TPALY457Y65xqBJUD7ezXOB1rHolwKzLZYB6gWERGRDsUS0kXAjqj58siyDts455qBamBwPAoUEREZqGI5J93RHnH7y69jaYOZXQ9cH5ltMLN1Mby+nLgCYJ/XRQwA6ufEUx8nnvo48Uq6u0IsIV0OjIyaLwZ2ddKm3MySgVxgf/sNOecWA4sBzGxNd8cwle5RH/cO9XPiqY8TT32ceGa2prvrxHK4+y3gFDMba2apwALg+XZtngeujkxfCrzi9GVnERGRHulyT9o512xmNwJ/IvwVrMecc+vN7G5gjXPueeBXwG/MbAvhPegFiSxaRERkIIjpe9LOuWXAsnbL7oyargcu6+ZrL+5me+k+9XHvUD8nnvo48dTHidftPvbsftIiIiJyfL4au1tERESO8CSkzWyOmW02sy1mdpsXNfRnZjbSzFaY2UYzW29m/+x1Tf2VmQXMbK2Zveh1Lf2RmeWZ2VIz2xT593ym1zX1R2Z2c+S9Yp2ZPW1murNOD5nZY2a2N/qrxmaWb2Z/MbMPIo+DutpOr4d0jMOMSs80A//inJsAzAK+pj5OmH8GNnpdRD/2Y+Al59x4YCrq67gzsyLg68AM59yphC8Q1sW/PfcEMKfdstuAl51zpwAvR+aPy4s96ViGGZUecM597Jx7JzJdQ/iNrf0ocdJDZlYMXAQ86nUt/ZGZ5QDnEP72CM65RudclbdV9VvJQHpknIsMjh0LQ7rJObeSY8cLiR5C+9fAF7rajhchHcswoxInZjYGmAas9raSfunfgW8BIa8L6ac+AVQAj0dOKTxqZpleF9XfOOd2Ag8AHwEfA9XOuT97W1W/NdQ59zGEd6aAIV2t4EVIxzSEqPScmWUBzwLfcM4d9Lqe/sTM5gJ7nXNve11LP5YMnAY84pybBhwihsOD0j2R86LzgbHACCDTzL7sbVXSyouQjmWYUekhM0shHNBPOef+y+t6+qGzgXlmtp3wKZvzzey33pbU75QD5c651qNASwmHtsTXZ4BtzrkK51wT8F/AWR7X1F/tMbPhAJHHvV2t4EVIxzLMqPRA5DahvwI2Ouce9Lqe/sg5923nXLFzbgzhf8OvOOe09xFHzrndwA4za70pwWxgg4cl9VcfAbPMLCPy3jEbXaCXKNFDaF8N/L+uVohpxLF46myY0d6uo587G7gKeM/M3o0s+05k5DiRvuQm4KnIB/qtwEKP6+l3nHOrzWwp8A7hb4asRaOP9ZiZPQ2UAgVmVg7cBdwHPGNm1xL+cNTlSJ0acUxERMSnNOKYiIiITymkRUREfEohLSIi4lMKaREREZ9SSIuIiPiUQlpERMSnFNIiIiI+pZAWERHxqf8BnMCtGM24PWMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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I+WedPXVV/PEE0+we/duFixYwMMPP8y+fftYs2YNwWCQUaNGUVdX16V9dnRv8U9/+tOcffbZPP3008ydO5f777+fCy64gDVr1rBs2TJuu+025syZw+233x6Nj9auSI7AHwTmdbTSOXeXc26yc24ycBvwknOuPKzJbH+9wltERHrMggULePTRR3niiSe4+uqrqaioID8/n2AwyPLly9m+fXuX9zlr1iwefvhhADZv3syHH37I+PHj2bZtG2PGjOHmm2/m8ssv580336SsrIz09HSuv/56vvWtb/X4Xc46PQJ3zq0ws1ER7u864JHuFCQiInIyzjzzTCorKykoKGDYsGF85jOf4bLLLmP69OlMnjyZ0047rcv7/MpXvsKXvvQlJk6cSHJyMg8++CCpqak89thj/PGPfyQYDDJ06FBuv/12Vq1axbe//W0CgQDBYJB77rmnBz7lMVGbxGZm6XhH6l8LW+yAZ83MAfc55xZH6++JiIi0tWHDsclzgwcP5tVXX2233ZF7h7dn1KhRvPXWWwCEQiEefPDB49rcdttt3Hbbba2WzZ07l7lz555E1ScnmrPQLwP+0Wb4/DznXJmZ5QPPmdk7zrkV7W1sZouARQB5eXmUlJREsTRpq6qqSn3cw9THPU993Dsi6eecnBwqKyt7p6A4V1dXF5V/t9EM8AW0GT53zpX5z3vN7ClgJtBugPtH54sBxo8f74qLi6NYmrRVUlKC+rhnqY97nvq4d0TSz5s2bSIrK6t3CoqSDRs2HJ1hfkRqaiqvv/56j/7dUCjElClTur2fqAS4meUA5wPXhy3LAALOuUr/9Rzgzmj8PRERke6aOHEi69ati3UZJy2S08geAYqBwWZWCtwBBAGcc/f6zT4JPOucqw7bdAjwlH/CfDLwJ+fc36NXuoiI9CXOuS5dJKU/6ui0tJMRySz06yJo8yDe6Wbhy7YBk062MBERiR+hUIgDBw4waNAghXgHnHMcOHCAUCgUlf3pUqoiItJthYWFlJaWsm/fvliX0qeFQiEKCwujsi8FuIiIdFswGGT06NGxLqNf0bXQRURE4pACXEREJA4pwEVEROKQAlxERCQOKcBFRETikAJcREQkDinARURE4pACXEREJA4pwEVEROKQAlxERCQOKcBFRETikAJcREQkDinARURE4pACXEREJA4pwEVEROKQAlxERCQO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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curves(history_resnet_new, 'accuracy', epochs, 0, 1)\n",
    "plot_learning_curves(history_resnet_new, 'loss', epochs, 0, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
